package com.leha.mp.core.dao;

import com.leha.mp.core.entity.mybatis.PlConsulting;
import com.leha.mp.core.entity.mybatis.PlOrder;
import com.leha.mp.core.entity.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface CustomLogicMapper {
   List<DoctorBaseInfoVo> selectUserDoctor(@Param("unionid") String unionid);
   Integer checkUserInited(@Param("unionid") String unionid);
   DoctorRichInfoVo getDoctorRichInfo(@Param("doctorId") Integer doctorId);
   List<UserCaseVo> getDoctorScheduleCase(@Param("doctorId") Integer doctorId, @Param("beginTime") String beginDate, @Param("endTime")String endTime);

   List<UserCaseVo> getDoctorConsulting(@Param("doctorId")Integer doctorId, @Param("type")Integer type);

    List<PlOrder> getDoctorOrders(@Param("doctorId") Integer doctorId, @Param("type") Integer type);

    List<PatientVo> getMyPatientVo(@Param("doctorId") Integer doctorId, @Param("type") Integer type);

    List<VipDoctorInfo> getVipUserDoctor(@Param("userId") Integer userId);

    Integer getDoctorSrvNums(@Param("doctorId") Integer doctorId);
    Integer getDoctorSrvMembers(@Param("doctorId") Integer doctorId);
    Integer updateDoctorSrvCnt(@Param("doctorId") Integer doctorId, @Param("memCnt") Integer memCnt, @Param("totalCnt") Integer totalCnt);

    Double getDoctorTodayIncome(@Param("doctorId") Integer doctorId);

    Integer getLastConsulting(@Param("userId") Integer userId, @Param("nowIndex") Integer nowIndex);

    /**
     * 获取预约咨询的通知列表
     * @return List
     */
    List<ConsultingCronVo> getCronConsultingNotifyList();

    /**
     * 获取过期的预约列表
     * @return List
     */
    List<UnConsultingCronVo> getCronUnConsultingNotifyList();


    /**
     * 获取用户最近的一条预约记录
     * @return UserLatestConsultingVo
     */
    UserLatestConsultingVo getUserLatestConsulting(@Param("userId") Integer userId);

}